#include<bits/stdc++.h>
using namespace std;
#define all(x) (x).begin(),(x).end()
#define rall(x) (x).rbegin(),(x).rend()
const int N = 2e5 + 10;
#define INF 0x3f3f3f3f;
typedef long long int ll;
#define close(); std::ios::sync_with_stdio(false);cin.tie(0),cout.tie(0);
//----------------------------------------------------------------------------//
//选择组合问题,本质都是背包问题的dp
int n, w[110];
bool f[110][N];//f[i][j]为前i个玛法中选,且称出重量的数为j的选法,元素是可不可行
int main()
{
    close();
    cin >> n;
    int sum = 0;
    for(int i = 1; i <= n; i++) cin >> w[i], sum += w[i];

    f[0][0] = true;

    for(int i = 1; i <= n; i++)
    {
        for(int j = 0; j <= sum; j++)
        {
            f[i][j] = f[i - 1][j] || f[i - 1][j + w[i]] || f[i - 1][abs(j - w[i])];
            //($1)这个点不取看前i-1个数字是否能组成j,($2)取这个数并且放右边,($3)取这个数并且放左边
        }
    }

    int ans = 0;
    for(int i = 1; i <= sum; i++) if(f[n][i]) ans++;
    cout << ans << '\n';

    return 0;
}